%-------------------------------
\section{Produktleistung}
\label{sec:Produktleistung}
%-------------------------------
\subsection*{(Hannes Stadler)}

\begin{tabular}{p{1.5cm}p{14.5cm}}


	 /L10/	& Alle Daten, die im vorherigen Abschnitt aufgelistet sind, müssen, sofern sie realisiert werden, persistent mittels einer SQL-Datenbank (erreichbar und verwaltet durch einen PostgreSQL-Server) gespeichert werden. \\[0.25cm]
	 
\end{tabular}


\begin{tabular}{p{1.5cm}p{14.5cm}}
						
	 /L20/	& Bei allen Prozessen mit Dateneingabe-Funktionen erhalten Nutzer aussagekräftige Fehlermeldungen, sollte ihr Prozess nicht ordnungsgemäß durchgeführt werden können. \\[0.25cm]
	 
\end{tabular}


\begin{tabular}{p{1.5cm}p{14.5cm}}
						
	 /L30/	& Die Realisierung erfolgt als Java-Anwendung, so dass ein möglicher Betrieb auf allen gängigen PCs der Universität sichergestellt ist. \\[0.25cm]

\end{tabular}


\begin{tabular}{p{1.5cm}p{14.5cm}}
						
	 /L40/	& Die Programmarchitektur richtet sich nach einem Drei-Schichten-Modell, wobei in einer Schicht die Anwendungslogik ("`A-Schicht"'), in einer weiteren die nötigen Funktionen und Schnittstellen zur Datenbank-Kommunikation ("`D-Schicht"') und in einer letzten die für den Nutzer sichtbaren Teile, mit denen er interagiert, ("`K-Schicht"') untergebracht sind.\\
	 & Das Programm ist zudem in logische Bereiche (Module) untergliedert, die innerhalb der ADK-Struktur existieren und die sich bei der Implementierung eines GUI (Graphical User Interface) nach dem MVC-Konzept (Model-View-Controller Konzept) richten. So kann ein Modul verschiedene Views (etwa Fenster, Tabs oder Eingabemasken) besitzen, die innerhalb der "`K-Schicht"' liegen, innerhalb der "`A-Schicht"' sind die den Views zugrundeliegenden Models, sowie deren Controller und ggf. zusätzlich nötige Anwendungslogik angesiedelt. Sofern Teile der Datenbank exklusiv bestimmten Modulen zuzuordnen sind, kann sich ein Modul auch bis in die "`D-Schicht"' erstrecken und hier eigene Funktionen und Schnittstellen bereitstellen. \\
	 & Diese Architektur erlaubt dabei einerseits maximale Flexibilität in Bezug auf zukünftige Erweiterungen und gewährleistet zudem durch viele klar voneinander abgegrenzte Bereiche ein effektives Arbeiten im Team bei der Implementierung. \\[0.15cm]
	 &	Die erste Version der Anwendung soll aus folgenden Modulen bestehen: \\[0.15cm]
	 &	\textbf{CoreGUI:} Hier wird die Start-Routine sowie der Startbildschirm der Anwendung realisiert. Die Funktion /F01/ und /F60/ werden von diesem Modul umgesetzt.\\[0.15cm]
	 &	\textbf{Verwaltung:} Hier wird die Anzeige für Verwaltungsmitglieder umgesetzt, die die Funktion /F10/, wünschenswerterweise /FW21/, /F40/, /F50/, /F51/, /F80/ und /F90/ realisiert.\\[0.15cm]
	 &	\textbf{Dozenten:} Hier wird die Anzeige für Dozenten umgesetzt, die die Funktion /F20/, wünschenswerterweise /FW21/, /F30/, /F140/, /F150/ und /F70/ realisiert.\\[0.15cm]
	 &	\textbf{Stundenplan:} Hier wird die Anzeige für den Stundenplan von Studenten umgesetzt, die die Funktion /F130/ realisiert.\\
	 &	\textbf{Raumplan:} Hier wird die Anzeige für Mitglieder der Verwaltung (und ggf. andere) von Räumen und deren Belegung umgesetzt, die die Funktion /F120/ realisiert.\\[0.15cm]
	 &	\textbf{Studentenprofil (wünschenswert):} Hier wird die Anzeige für Studenten umgesetzt, die die Funktion /FW61/ realisiert.\\[0.15cm]
	 & Alle Module sind von "`CoreGUI"' abhängig.\\[0.25cm]

\end{tabular}


\begin{tabular}{p{1.5cm}p{14.5cm}}
					
	 /L50/	& Es wird eine Nutzerauthentifizierung realisiert, die es gewährleistet, dass nur berechtigte Nutzer Änderungen durchführen. Um Missbrauch ausschließen zu können, sollte allerdings eine Middleware (die großteils die Model- und Controller-Schicht abdeckt) zwischen Datenbank und Client (der haupsächlich die View-Schicht umsetzt) realisiert werden. In diesem Fall sollte die Kommunikation zwischen Client und Middleware durch SSL (mithilfe von javax.net.ssl.* und javax.rmi.ssl.*) abgesichert werden. \\[0.25cm]
	
\end{tabular}


\begin{tabular}{p{1.5cm}p{14.5cm}}
					
	 /L60/	& Jede Interaktion sollte im Mittel zur Durchführung nicht länger als 3 Sekunden brauchen. \\[0.25cm]
	
\end{tabular}

\begin{tabular}{p{1.5cm}p{14.5cm}}
					
	 /L70/	& Über die Datenbank als externe Komponente, die auf einen Server ausgelagert wird, wird sichergestellt, dass ein gemeinsamer Betrieb mit anderen Client-Programmen, die ebenfalls die Datenbank nutzen, ermöglicht wird. So wird es beispielsweise möglich sein, Anwendungen für mobile Endgeräte oder Webanwendungen zu entwerfen, die sich in Echtzeit die Datenbasis teilen.\\[0.25cm]
	
\end{tabular}



%################################
% \end{document}
%################################